/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gob.pnp.despachadores;

import java.sql.*;
import java.util.*;
import org.apache.log4j.Logger;
import pe.gob.pnp.actions.*;
import pe.gob.pnp.factories.*;

/**
 *
 * @author Home
 */
public class LiquidacionDespachador {

    private static final Logger logger = Logger.getLogger(LiquidacionDespachador.class);

    public static List<LiquidacionBean> obtenerLiquidacionPersona(int expediente) throws SQLException {
        LiquidacionBean liquidacion = new LiquidacionBean();
        List<LiquidacionBean> lstLiquidacion = new ArrayList<LiquidacionBean>();
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = " SELECT L.CLIQU_COMPLETOESPECIAL, L.CLIQU_MESPARCIAL, L.CLIQU_PAGOBENOPE, ";
            sql += " L.NLIQU_IDENTIFICADOR, L.NEXPE_IDENTIFICADOR,";
            sql += " L.NTIBE_IDENTIFICADOR, TB.CTIBE_DESCRIPCION,L.CLIQU_BENEFICIARIOS,";
            sql += " L.CLIQU_DICTAMEN, L.DLIQU_FECHAINICIOPENSION,";
            sql += " L.NUNPA_UNIDADPAGO, L.CLIQU_FECHABAJA, ";
            sql += " L.NMORE_IDENTIFICADOR, L.CLIQU_CGTS, L.cliqu_observaciones, ";
            sql += " L.CLIQU_TIEMPOSERVICIO FROM PERMA_LIQUIDACION L ";
            sql += " INNER JOIN SISMA_EXPEDIENTE E ";
            sql += " ON E.NEXPE_IDENTIFICADOR = L.NEXPE_IDENTIFICADOR ";
            sql += " INNER JOIN PERMA_TIPOBENEFICIO TB";
            sql += " ON TB.NTIBE_IDENTIFICADOR = L.NTIBE_IDENTIFICADOR ";
            sql += " WHERE E.NEXPE_IDENTIFICADOR=?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1, expediente);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                liquidacion = new LiquidacionBean();
                liquidacion.setNliqu_identificador(rs.getInt("NLIQU_IDENTIFICADOR"));
                liquidacion.setNexpe_identificador(rs.getInt("NEXPE_IDENTIFICADOR"));
                liquidacion.setNtibe_identificador(rs.getInt("NTIBE_IDENTIFICADOR"));
                liquidacion.setCtibe_descripcion(rs.getString("CTIBE_DESCRIPCION"));
                liquidacion.setCliqu_beneficiarios(rs.getString("CLIQU_BENEFICIARIOS"));
                liquidacion.setCliqu_dictamen(rs.getString("CLIQU_DICTAMEN"));
                liquidacion.setDliqu_fechainiciopension(rs.getDate("DLIQU_FECHAINICIOPENSION"));
                liquidacion.setNunpa_unidadpago(rs.getInt("NUNPA_UNIDADPAGO"));
                liquidacion.setDliqu_fechabaja(rs.getDate("CLIQU_FECHABAJA"));
                liquidacion.setNmore_identificador(rs.getInt("NMORE_IDENTIFICADOR"));
                liquidacion.setCliqu_cgts(rs.getString("CLIQU_CGTS"));
                liquidacion.setCliqu_tiemposervicio(rs.getString("CLIQU_TIEMPOSERVICIO"));
                liquidacion.setCliqu_mesparcial(rs.getInt("CLIQU_MESPARCIAL"));
                liquidacion.setCliqu_completoespecial(rs.getInt("CLIQU_COMPLETOESPECIAL"));
                liquidacion.setCliqu_pagobenope(rs.getInt("CLIQU_PAGOBENOPE"));
                liquidacion.setCliqu_observaciones(rs.getString("cliqu_observaciones"));
                lstLiquidacion.add(liquidacion);
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return lstLiquidacion;
    }

    public static List<MotivoBajaBean> obtenerMotivosBaja() throws SQLException {
        MotivoBajaBean motivos = new MotivoBajaBean();
        List<MotivoBajaBean> lstMotivos = new ArrayList<MotivoBajaBean>();
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "SELECT NMORE_IDENTIFICADOR,NMORE_CODIGO,CMORE_DESCRIPCION";
            sql += " FROM PERMA_MOTIVORETIRO WHERE BMORE_ELIMINADO = 0 ";
            sql += " ORDER BY CMORE_DESCRIPCION";
            PreparedStatement ps = conn.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                motivos = new MotivoBajaBean();
                motivos.setNmore_identificador(rs.getInt("NMORE_IDENTIFICADOR"));
                motivos.setNmore_codigo(rs.getInt("NMORE_CODIGO"));
                motivos.setCmore_descripcion(rs.getString("CMORE_DESCRIPCION"));
                lstMotivos.add(motivos);
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return lstMotivos;
    }

    public static List<TipoBeneficioBean> obtenerTipoBeneficio() throws SQLException {
        TipoBeneficioBean beneficio = new TipoBeneficioBean();
        List<TipoBeneficioBean> lstBeneficio = new ArrayList<TipoBeneficioBean>();
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "SELECT NTIBE_IDENTIFICADOR, CTIBE_DESCRIPCION FROM PERMA_TIPOBENEFICIO ";
            sql += " WHERE BTIBE_ELIMINADO= 0";
            sql += " ORDER BY NTIBE_ORDEN,CTIBE_DESCRIPCION ";
            PreparedStatement ps = conn.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                beneficio = new TipoBeneficioBean();
                beneficio.setCtibe_descripcion(rs.getString("CTIBE_DESCRIPCION"));
                beneficio.setNtibe_identificador(rs.getInt("NTIBE_IDENTIFICADOR"));
                lstBeneficio.add(beneficio);
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return lstBeneficio;
    }

    public static int getIdLiquidacion() {
        Connection conn = null;
        int id = 0;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "SELECT SEQ_NLIQUIDACION.CURRVAL as ID FROM dual";
            PreparedStatement ps = conn.prepareStatement(sql);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                id = rs.getInt("ID");
            } else {
                id = 1;
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return id;
    }

    public static boolean ingresarCabeceraLiquidacion(LiquidacionBean liquidacion) throws SQLException {
        boolean resultado = false;
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "INSERT INTO PERMA_LIQUIDACION (NLIQU_IDENTIFICADOR,"
                    + "NEXPE_IDENTIFICADOR,"
                    + "NTIBE_IDENTIFICADOR,"
                    + "CLIQU_BENEFICIARIOS,"
                    + "CLIQU_DICTAMEN,"
                    + "DLIQU_FECHAINICIOPENSION,"
                    + "NUNPA_UNIDADPAGO,"
                    + "CLIQU_FECHABAJA,"
                    + "NMORE_IDENTIFICADOR,"
                    + "CLIQU_CGTS,"
                    + "CLIQU_TIEMPOSERVICIO,"
                    + "cliqu_completoespecial,"
                    + "cliqu_pagobenope,"
                    + "cliqu_mesparcial,"
                    + "cliqu_observaciones"
                    + ")"
                    + "VALUES (SEQ_NLIQUIDACION.NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1, liquidacion.getNexpe_identificador());
            ps.setInt(2, liquidacion.getNtibe_identificador());
            ps.setString(3, liquidacion.getCliqu_beneficiarios());
            ps.setString(4, liquidacion.getCliqu_dictamen());
            ps.setDate(5, liquidacion.getDliqu_fechainiciopension());
            ps.setInt(6, liquidacion.getNunpa_unidadpago());
            ps.setDate(7, liquidacion.getDliqu_fechabaja());
            ps.setInt(8, liquidacion.getNmore_identificador());
            ps.setString(9, liquidacion.getCliqu_cgts());
            ps.setString(10, liquidacion.getCliqu_tiemposervicio());
            ps.setInt(11, liquidacion.getCliqu_completoespecial());
            ps.setInt(12, liquidacion.getCliqu_pagobenope());
            ps.setInt(13, liquidacion.getCliqu_mesparcial());
            ps.setString(14, liquidacion.getCliqu_observaciones());
            ps.executeUpdate();
            resultado = true;
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return resultado;
    }

    public static boolean actualizarCabeceraLiquidacion(LiquidacionBean liquidacion) throws SQLException {
        boolean resultado = false;
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = " UPDATE PERMA_LIQUIDACION SET "+
                          "NTIBE_IDENTIFICADOR=?,"+
                          "CLIQU_BENEFICIARIOS=?,"+
                          "CLIQU_DICTAMEN=?,"+
                          "DLIQU_FECHAINICIOPENSION=?,"+
                          "NUNPA_UNIDADPAGO=?,"+
                          "CLIQU_FECHABAJA=?,"+
                          "NMORE_IDENTIFICADOR=?,"+
                          "CLIQU_CGTS=?,"+
                          "CLIQU_TIEMPOSERVICIO=?, "+
                          "cliqu_completoespecial=?,"+
                          "cliqu_pagobenope=?,"+
                          "cliqu_mesparcial=?,"+
                          "cliqu_observaciones=?"+
                          "WHERE NLIQU_IDENTIFICADOR=?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1, liquidacion.getNtibe_identificador());
            ps.setString(2, liquidacion.getCliqu_beneficiarios());
            ps.setString(3, liquidacion.getCliqu_dictamen());
            ps.setDate(4,liquidacion.getDliqu_fechainiciopension());
            ps.setInt(5, liquidacion.getNunpa_unidadpago());
            ps.setDate(6, liquidacion.getDliqu_fechabaja());
            ps.setInt(7,liquidacion.getNmore_identificador());
            ps.setString(8, liquidacion.getCliqu_cgts());
            ps.setString(9, liquidacion.getCliqu_tiemposervicio());
            ps.setInt(10, liquidacion.getCliqu_completoespecial());
            ps.setInt(11, liquidacion.getCliqu_pagobenope());
            ps.setInt(12, liquidacion.getCliqu_mesparcial());
            ps.setString(13, liquidacion.getCliqu_observaciones());
            ps.setInt(14,liquidacion.getNliqu_identificador());

            ps.executeUpdate();
            resultado = true;
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return resultado;
    }

    public static List<DetalleLiquidacionBean> obtenerDetalleLiquidacionPersona(int liquidacion) throws SQLException {
        DetalleLiquidacionBean detalleliquidacion = new DetalleLiquidacionBean();
        List<DetalleLiquidacionBean> lstLiquidacion = new ArrayList<DetalleLiquidacionBean>();
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "SELECT  PD.NDELI_IDENTIFICADOR, PD.DDELI_FECHACREACION,";
            sql += " PD.NBENE_IDENTIFICADOR, B.CBENE_DESCRIPCION, ";
            sql += " PD.NLIQU_IDENTIFICADOR,B.NBENE_MONTO FROM PERMA_DETALLELIQUIDACION PD";
            sql += " INNER JOIN SISMA_BENEFICIO B ON PD.NBENE_IDENTIFICADOR = B.NBENE_IDENTIFICADOR ";
            sql += " WHERE PD.NLIQU_IDENTIFICADOR = ?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1,liquidacion);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                detalleliquidacion = new DetalleLiquidacionBean();
                detalleliquidacion.setNliqu_identificador(rs.getInt("NLIQU_IDENTIFICADOR"));
                detalleliquidacion.setNdeli_identificador(rs.getInt("NDELI_IDENTIFICADOR"));
                detalleliquidacion.setDdeli_fechacreacion(rs.getDate("DDELI_FECHACREACION"));
                detalleliquidacion.setNbene_identificador(rs.getInt("NBENE_IDENTIFICADOR"));
                detalleliquidacion.setCbene_descripcion(rs.getString("CBENE_DESCRIPCION"));
                detalleliquidacion.setNbene_monto(rs.getDouble("NBENE_MONTO"));
                lstLiquidacion.add(detalleliquidacion);
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return lstLiquidacion;
    }

    public static List<DetalleLiquidacionBean> obtenerBeneficios(int grado) throws SQLException {
        DetalleLiquidacionBean detalleliquidacion = new DetalleLiquidacionBean();
        List<DetalleLiquidacionBean> lstLiquidacion = new ArrayList<DetalleLiquidacionBean>();
        Connection conn = null;
        StringBuilder sql = new StringBuilder();
        try {
            conn = ConnectionPool.obtenerConexion();
            sql.append("SELECT  B.NBENE_IDENTIFICADOR, B.CBENE_DESCRIPCION ");
            sql.append(" ,B.NBENE_MONTO FROM SISMA_BENEFICIO B ");
            sql.append(" WHERE NGRAD_IDENTIFICADOR=?");
            sql.append(" ORDER BY CBENE_DESCRIPCION");
            PreparedStatement ps = conn.prepareStatement(sql.toString());
            ps.setInt(1,grado);
            System.out.println(sql.toString() + " / " + grado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                detalleliquidacion = new DetalleLiquidacionBean();
                detalleliquidacion.setNbene_identificador(rs.getInt("NBENE_IDENTIFICADOR"));
                detalleliquidacion.setCbene_descripcion(rs.getString("CBENE_DESCRIPCION"));
                detalleliquidacion.setNbene_monto(rs.getDouble("NBENE_MONTO"));
                lstLiquidacion.add(detalleliquidacion);
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return lstLiquidacion;
    }

    public static List<FraccionamientoBean> obtenerFraccionamientoLiquidacion(int liquidacion) throws SQLException {
        FraccionamientoBean detallefraccionamiento = null;
        List<FraccionamientoBean> lstFraccionamiento = new ArrayList<FraccionamientoBean>();
        Connection conn = null;
        StringBuilder sql = new StringBuilder();
        try {
            conn = ConnectionPool.obtenerConexion();
            sql.append("SELECT NFRLI_IDENTIFICADOR,CFRLI_DESCRIPCION, ");
            sql.append(" NFRLI_MONTO,NLIQU_IDENTIFICADOR,NFRLI_PARTE,NFRLI_TOTAL");
            sql.append(" FROM PERMA_FRACCIONAMIENTO WHERE BFRLI_ELIMINADO = 0");
            sql.append(" AND NLIQU_IDENTIFICADOR = ?");
            PreparedStatement ps = conn.prepareStatement(sql.toString());
            ps.setInt(1,liquidacion);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                detallefraccionamiento = new FraccionamientoBean();
                detallefraccionamiento.setNfrli_identificador(rs.getInt("NFRLI_IDENTIFICADOR"));
                detallefraccionamiento.setCfrli_descripcion(rs.getString("CFRLI_DESCRIPCION"));
                detallefraccionamiento.setNfrli_monto(rs.getDouble("NFRLI_MONTO"));
                detallefraccionamiento.setNliqu_identificador(rs.getInt("NLIQU_IDENTIFICADOR"));
                detallefraccionamiento.setNfrli_parte(rs.getDouble("NFRLI_PARTE"));
                detallefraccionamiento.setNfrli_total(rs.getDouble("NFRLI_TOTAL"));
                lstFraccionamiento.add(detallefraccionamiento);
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return lstFraccionamiento;
    }

    public static String obtenerMontoBeneficio(int beneficio) throws SQLException {
        String monto = "0.00";
        Connection conn = null;
        StringBuilder sql = new StringBuilder();
        try {
            conn = ConnectionPool.obtenerConexion();
            sql.append("SELECT  B.NBENE_IDENTIFICADOR, B.CBENE_DESCRIPCION ");
            sql.append(" ,B.NBENE_MONTO FROM SISMA_BENEFICIO B ");
            sql.append(" WHERE NBENE_IDENTIFICADOR = ?");
            sql.append(" ORDER BY CBENE_DESCRIPCION");
            PreparedStatement ps = conn.prepareStatement(sql.toString());
            ps.setInt(1,beneficio);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
               monto = rs.getString("NBENE_MONTO");
            }
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return monto;
    }

    public static boolean ingresarBenefico(DetalleLiquidacionBean beneficio) throws SQLException {
        boolean resultado = false;
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = " INSERT INTO PERMA_DETALLELIQUIDACION(NDELI_IDENTIFICADOR, ";
            sql += " DDELI_FECHACREACION, BDELI_ELIMINADO, NBENE_IDENTIFICADOR, NLIQU_IDENTIFICADOR) ";
            sql += " VALUES(SEQ_DELIIDENTIFICADOR.NEXTVAL, SYSDATE, 0,?, ?)";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1,beneficio.getNbene_identificador());
            ps.setInt(2,beneficio.getNliqu_identificador());
            ps.executeUpdate();
            resultado = true;
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return resultado;
    }

    public static boolean eliminarBenefico(int beneficio) throws SQLException {
        boolean resultado = false;
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = " DELETE FROM PERMA_DETALLELIQUIDACION WHERE NDELI_IDENTIFICADOR=? ";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1,beneficio);
            ps.executeUpdate();
            resultado = true;
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return resultado;
    }

    public static boolean ingresarFraccionamiento(FraccionamientoBean fraccionamiento) throws SQLException {
        boolean resultado = false;
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "INSERT INTO PERMA_FRACCIONAMIENTO(NFRLI_IDENTIFICADOR, ";
            sql += " CFRLI_DESCRIPCION, NFRLI_MONTO, BFRLI_ELIMINADO, NLIQU_IDENTIFICADOR,";
            sql += " NFRLI_PARTE, NFRLI_TOTAL) ";
            sql += " VALUES(SEQ_NFRACIDENTIFICADOR.NEXTVAL,?,?, 0,?,? ,?)";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1,fraccionamiento.getCfrli_descripcion());
            ps.setDouble(2,fraccionamiento.getNfrli_monto());
            ps.setInt(3,fraccionamiento.getNliqu_identificador());
            ps.setDouble(4,fraccionamiento.getNfrli_parte());
            ps.setDouble(5,fraccionamiento.getNfrli_total());
            ps.executeUpdate();
            resultado = true;
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return resultado;
    }

    public static boolean eliminarFraccionamiento(int fraccionamiento) throws SQLException {
        boolean resultado = false;
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = " DELETE FROM PERMA_FRACCIONAMIENTO WHERE NFRLI_IDENTIFICADOR=? ";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setInt(1,fraccionamiento);
            ps.executeUpdate();
            resultado = true;
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return resultado;
    }

    public static LiquidacionBean obtenerLiquidacionPorId(String nliqu_identificador) {
        StringBuilder sql = new StringBuilder();
        LiquidacionBean liquidacion = new LiquidacionBean();
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            sql.append(" SELECT L.CLIQU_COMPLETOESPECIAL, L.CLIQU_MESPARCIAL, L.CLIQU_PAGOBENOPE, ");
            sql.append(" L.NLIQU_IDENTIFICADOR, L.CLIQU_BENEFICIARIOS, L.cliqu_observaciones, ");
            sql.append(" L.NTIBE_IDENTIFICADOR, TB.CTIBE_DESCRIPCION, L.CLIQU_CGTS, ");
            sql.append(" L.CLIQU_DICTAMEN, L.DLIQU_FECHAINICIOPENSION, L.NMORE_IDENTIFICADOR, ");
            sql.append(" L.CLIQU_FECHABAJA, L.CLIQU_TIEMPOSERVICIO, ");
            sql.append(" pol.NPEPO_IDENTIFICADOR,mr.CMORE_DESCRIPCION, ");
            sql.append(" E.NEXPE_IDENTIFICADOR, E.CEXPE_CODIGOARCHIVO, ");
            sql.append(" CUNPA_NOMBRECORTO ,L.NUNPA_UNIDADPAGO ");
            sql.append(" FROM PERMA_LIQUIDACION L ");
            sql.append(" INNER JOIN SISMA_EXPEDIENTE E ON E.NEXPE_IDENTIFICADOR = L.NEXPE_IDENTIFICADOR ");
            sql.append(" INNER JOIN PERMA_TIPOBENEFICIO TB ON TB.NTIBE_IDENTIFICADOR = L.NTIBE_IDENTIFICADOR ");
            sql.append(" inner join PERMA_PERSONALPOLICIAL pol on E.NPEPO_IDENTIFICADOR= pol.NPEPO_IDENTIFICADOR ");
            sql.append(" left outer join PERMA_MOTIVORETIRO mr on mr.NMORE_IDENTIFICADOR=L.NMORE_IDENTIFICADOR ");
            sql.append(" left outer join SISMA_UNIDADPAGO up on up.NUNPA_CODIGOUNIDAD = L.NUNPA_UNIDADPAGO ");
            sql.append(" WHERE L.NLIQU_IDENTIFICADOR=?");
            logger.debug(sql.toString());
            PreparedStatement ps = conn.prepareStatement(sql.toString());
            ps.setInt(1, Integer.parseInt(nliqu_identificador));
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                liquidacion = new LiquidacionBean();
                liquidacion.setNliqu_identificador(rs.getInt("NLIQU_IDENTIFICADOR"));
                liquidacion.setNexpe_identificador(rs.getInt("NEXPE_IDENTIFICADOR"));
                liquidacion.setNtibe_identificador(rs.getInt("NTIBE_IDENTIFICADOR"));
                liquidacion.setCtibe_descripcion(rs.getString("CTIBE_DESCRIPCION"));
                liquidacion.setCliqu_beneficiarios(rs.getString("CLIQU_BENEFICIARIOS"));
                liquidacion.setCliqu_dictamen(rs.getString("CLIQU_DICTAMEN"));
                liquidacion.setDliqu_fechainiciopension(rs.getDate("DLIQU_FECHAINICIOPENSION"));
                liquidacion.setNunpa_unidadpago(rs.getInt("NUNPA_UNIDADPAGO"));
                liquidacion.setDliqu_fechabaja(rs.getDate("CLIQU_FECHABAJA"));
                liquidacion.setNmore_identificador(rs.getInt("NMORE_IDENTIFICADOR"));
                liquidacion.setCliqu_cgts(rs.getString("CLIQU_CGTS"));
                liquidacion.setCliqu_tiemposervicio(rs.getString("CLIQU_TIEMPOSERVICIO"));
                liquidacion.setCliqu_mesparcial(rs.getInt("CLIQU_MESPARCIAL"));
                liquidacion.setCliqu_completoespecial(rs.getInt("CLIQU_COMPLETOESPECIAL"));
                liquidacion.setCliqu_pagobenope(rs.getInt("CLIQU_PAGOBENOPE"));
                liquidacion.setCliqu_observaciones(rs.getString("cliqu_observaciones"));
                liquidacion.setNpepo_identificador(rs.getInt("npepo_identificador"));
                liquidacion.setCexpe_codigoarchivo(rs.getString("cexpe_codigoarchivo"));
                liquidacion.setCunpa_nombrecorto(rs.getString("cunpa_nombrecorto"));
                liquidacion.setCmore_descripcion(rs.getString("cmore_descripcion"));
            }
        }catch(Exception e){
            e.printStackTrace();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
        return liquidacion;
    }
    
}
